﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;

namespace AlgorithmTest
{
    // T_[四个数字排序]_[算法名]
    public class T_0117_MissingNumber : IAlgorithm
    {
        // 缺失数字

        // 给定一个包含 [0, n] 中 n 个数的数组 nums ，找出 [0, n] 这个范围内没有出现在数组中的那个数。

        // 提示：
        //   n == nums.length
        //   1 <= n <= 10^4
        //   0 <= nums[i] <= n
        //   nums 中的所有数字都 独一无二

        // 进阶：你能否实现线性时间复杂度、仅使用额外常数空间的算法解决此问题?

        public void Test()
        {
            // 算法参数定义

            // 算法执行与打印
            //Console.WriteLine(Algorithm());
        }

        // 算法
        public int MissingNumber(int[] nums)
        {
            int xor = 0;
            for (int i = 0; i < nums.Length; i++)
                xor ^= nums[i] ^ (i + 1);
            return xor;
        }
    }
}
